JS Function

❓질문

자바스크립트 함수에 대해서 아는대로 설명해주세요.


💡 조사하기전 내가 알고 있던 내용

자바스크립트의 함수는 일급 함수입니다. 이는 js의 함수는 값처럼 취급되어 활용할수있다는것을 의미합니다. 호이스팅 되어 선언부 상단에서도 호출이 가능합니다.


🏫 정리한 내용

첫번째 자바스크립트의 함수는 일급객체입니다.
함수는 값처럼 취급되며 변수에 할당하거나 다른 함수의 인자로 전달 함수에 반환값으로 사용이 가능합니다.

두번째 익명 함수와 함수 표현식으로 선언이 가능합니다.
이름 없는 함수를 정의할수있습니다 이는 함수 표현식에서 주로 사용됩니다.

세번째 호이스팅됩니다.
선언식으로 선언된 함수는 함수 선언이전에 호출이 가능합니다.
반면 함수 표현식은 변수 할당이전에는 사용이 불가능합니다. (ReferenceError)

네번째 클로저
함수가 자신이 선언된 스코프를 기억하고 해당 환경에 접근할수있는 특성이 있습니다.
이를 통해 함수는 자신이 선언된 당시 스코프내의 변수를 참조 할수있습니다.

다섯번째 고차함수
자바스크립트의 함수는 일급객체이기때문에 고차함수 즉 다른함수를 인자로 받거나 반환하는 함수를 정의 할수있습니다. 그로인해 함수형 프로그래밍 패턴이 가능합니다.

여섯번째 화살표함수
Arrow function을 통해 더 간결한 문법과 this 바인딩에서 기존의 함수와 다른 동작을합니다
화살표함수는 선언된 위치의 this값을 유지하므로 일반 함수와 달리 별도로 this를 바인딩 할 필요가 없습니다.